# Project:	Director:


# Label macros

name		= Director
version		= 0.39


# Tool macros

asm_		= objasm
copy		= copy
link		= link
robodoc		= robodoc
setdate		= setdate
submake		= submake
wipe		= X wipe


# Flag macros

# depend	= -depend !Depend
# throwback	= -throwback
nowarnings	= --no_warn


asmflags	= $(throwback) $(depend) $(nowarnings) -predefine "Name SETS \"$(Name)\"" -i <OSLib$Dir>
copyflags	= ~CFRV
linkflags	= -o $@
robodocflags	= DBSGML SINGLEDOC
wipeflags	= ~CFRV


# Combined macros

asm		= $(asm_) $(asmflags)
link_mod	= $(link) $(linkflags) -bin -b 0


# Directory macros

docdir		= ../NewDocs/Dsl
scriptdir	= ../NewDocs/Scripts


# Files to make

normal_		= \
		o.BMG		\
		o.Edit		\
		o.Filter	\
		o.Icons		\
		o.Memoriser	\
		o.Memory	\
		o.Menus		\
		o.Messages	\
		o.ModuleHead	\
		o.ModuleTail    \
		o.Sort		\
		o.Task		\
		o.URL		\
		o.Windows

debug_		= \
		d.BMG		\
		d.Edit		\
		d.Filter	\
		d.Icons		\
		d.Memoriser	\
		d.Memory	\
		d.Menus		\
		d.Messages	\
		d.ModuleHead	\
		d.ModuleTail    \
		d.Sort		\
		d.Task		\
		d.URL		\
		d.Windows


# Final targets

all:		normal !Help debug

normal:		@.Director setup
		$(submake) *.Makefile

debug:		@.DirectorD setup
		$(submake) *.Makefile -- debug

setup:
		cdir @.o
		cdir @.d

clean:
		$(wipe) <Prefix$Dir>.o            $(wipeflags)
		$(wipe) <Prefix$Dir>.d            $(wipeflags)
		$(submake) *.Makefile -- clean

maintainerclean:
		$(wipe) <Prefix$Dir>.o            $(wipeflags)
		$(wipe) <Prefix$Dir>.d            $(wipeflags)
		$(wipe) <Prefix$Dir>.Director     $(wipeflags)
		$(wipe) <Prefix$Dir>.DirectorD    $(wipeflags)
		$(wipe) <Prefix$Dir>.!Help        $(wipeflags)
		$(submake) *.Makefile -- maintainerclean

nosource:
		$(wipe) <Prefix$Dir>.CVS          $(wipeflags)
		$(wipe) <Prefix$Dir>.o            $(wipeflags)
		$(wipe) <Prefix$Dir>.d           $(wipeflags)
		$(wipe) <Prefix$Dir>.s            $(wipeflags)
		$(wipe) <Prefix$Dir>.h            $(wipeflags)
		$(wipe) <Prefix$Dir>.MakeAll      $(wipeflags)
		$(wipe) <Prefix$Dir>.MakeDirector $(wipeflags)
		$(wipe) <Prefix$Dir>.MakeClean    $(wipeflags)
		$(wipe) <Prefix$Dir>.MakeMClean   $(wipeflags)
		$(submake) *.Makefile -- nosource
		$(wipe) <Prefix$Dir>.Makefile     $(wipeflags)

doc:
		mkdir -p $(docdir)/{h,s}
		cd h && for i in *; do ../$(scriptdir)/DotToSlash,102 < $$i > /tmp/director && $(robodoc) /tmp/director ../$(docdir)/h/$$i $(robodocflags); done;
		cd s && for i in *; do ../$(scriptdir)/DotToSlash,102 < $$i > /tmp/director && $(robodoc) /tmp/director ../$(docdir)/s/$$i $(robodocflags); done;
		cd $(docdir)/s/ && for i in *; do cp $$i /tmp/$$i; perl ../../Scripts/ToDsssl,102 /tmp/$$i > $$i; rm /tmp/$$i; done;
		cd $(docdir)/h/ && for i in *; do cp $$i /tmp/$$i; perl ../../Scripts/ToDsssl,102 /tmp/$$i > $$i; rm /tmp/$$i; done;


# Individual targets

@.Director:	$(normal_) setup
		setdate o.Version \
			Version="$(Version) (%dy %m3 %ce%yr)" \
			Author=" Director Developers %ce%yr" \
			Help="$(Name)\t$(Version) (%dy %m3 %ce%yr) (C) Director Developers %ce%yr"
		$(link_mod) $(normal_) o.Version
		SetType $@ Module
		AddCRC $@

@.DirectorD:	$(debug_) setup
		setdate d.Version \
			Version="$(Version) (%dy %m3 %ce%yr)" \
			Author=" Director Developers %ce%yr" \
			Help="$(Name)\t$(Version) (%dy %m3 %ce%yr) (C) Director Developers %ce%yr"
		$(link_mod) $(debug_) d.Version
		SetType $@ Module
		AddCRC $@

!Help:
		$(copy) <Prefix$Dir>.^.!ReadMe <Prefix$Dir>.!Help $(copyflags)


# Rule Patterns

.SUFFIXES:	.o .d
.s.o:;		$(asm) $< $@ -predefine "OSVersion SETA 0" -PreDefine "SIGNATURE SETL {TRUE}"
.s.d:;		$(asm) $< $@ -predefine "OSVersion SETA 0" -PreDefine "DEBUG SETL {TRUE}"



# Static dependencies


d.BMG: s.BMG
d.BMG: h.WorkSpace
d.BMG: h.ListMacros
d.BMG: h.Constants
d.BMG: h.Memory
d.BMG: h.ModuleHead
d.BMG: h.Menus
d.BMG: h.Task
d.BMG: h.Filter
d.BMG: h.Sort
d.Edit: s.Edit
d.Edit: h.WorkSpace
d.Edit: h.ListMacros
d.Edit: h.Constants
d.Edit: h.Memory
d.Edit: h.Task
d.Edit: h.Menus
d.Edit: h.BMG
d.Edit: h.ModuleHead
d.Filter: s.Filter
d.Filter: h.WorkSpace
d.Filter: h.ListMacros
d.Filter: h.Constants
d.Filter: h.Memory
d.Filter: h.ModuleHead
d.Filter: h.Task
d.Filter: h.BMG
d.Filter: h.Menus
d.Filter: h.Memoriser
d.Icons: s.Icons
d.Icons: h.Constants
d.Icons: h.WorkSpace
d.Icons: h.ListMacros
d.Icons: h.Memory
d.Icons: h.Menus
d.Icons: h.ModuleHead
d.Icons: h.BMG
d.Icons: h.Task
d.Memoriser: s.Memoriser
d.Memoriser: h.WorkSpace
d.Memoriser: h.ListMacros
d.Memoriser: h.Constants
d.Memoriser: h.Memory
d.Memoriser: h.Task
d.Memoriser: h.Menus
d.Memoriser: h.BMG
d.Memoriser: h.ModuleHead
d.ModuleHead: s.ModuleHead
d.ModuleHead: h.WorkSpace
d.ModuleHead: h.Constants
d.ModuleHead: h.ListMacros
d.ModuleHead: h.Memory
d.ModuleHead: h.Task
d.ModuleHead: h.Messages
d.ModuleHead: h.ModuleTail
d.ModuleHead: h.Version
d.ModuleHead: h.Filter
d.ModuleHead: h.Sort
d.ModuleHead: h.URL
d.Sort: s.Sort
d.Sort: h.WorkSpace
d.Sort: h.ListMacros
d.Sort: h.Constants
d.Sort: h.ModuleHead
d.Sort: h.Memory
d.Sort: h.Menus
d.Sort: h.BMG
d.Task: s.Task
d.Task: h.Constants
d.Task: h.WorkSpace
d.Task: h.ListMacros
d.Task: h.ModuleHead
d.Task: h.Memory
d.Task: h.Menus
d.Task: h.Memoriser
d.Task: h.Messages
d.Task: h.Icons
d.Task: h.Windows
d.Task: h.Filter
d.Task: h.Edit
d.Task: h.URL
d.Task: h.BMG
d.Task: h.Version
d.URL: s.URL
d.URL: h.WorkSpace
d.URL: h.ListMacros
d.URL: h.Constants
d.URL: h.Memory
d.URL: h.Task
d.URL: h.Menus
d.URL: h.BMG
d.URL: h.ModuleHead
d.Windows: s.Windows
d.Windows: h.WorkSpace
d.Windows: h.ListMacros
d.Windows: h.Constants
d.Windows: h.Memory
d.Windows: h.ModuleHead
d.Windows: h.BMG
d.Windows: h.Task
d.Windows: h.Menus
o.Memory: s.Memory
o.Memory: h.WorkSpace
o.Memory: h.ListMacros
o.Memory: h.Constants
o.Memory: h.Menus
o.Menus: s.Menus
o.Menus: h.WorkSpace
o.Menus: h.ListMacros
o.Menus: h.Constants
o.Menus: h.Memory
o.Menus: h.Menus
o.Menus: h.Sort
o.ModuleTail: s.ModuleTail
o.BMG: s.BMG
o.BMG: h.WorkSpace
o.BMG: h.ListMacros
o.BMG: h.Constants
o.BMG: h.Memory
o.BMG: h.ModuleHead
o.BMG: h.Menus
o.BMG: h.Task
o.BMG: h.Filter
o.BMG: h.Sort
o.Edit: s.Edit
o.Edit: h.WorkSpace
o.Edit: h.ListMacros
o.Edit: h.Constants
o.Edit: h.Memory
o.Edit: h.Task
o.Edit: h.Menus
o.Edit: h.BMG
o.Edit: h.ModuleHead
o.Filter: s.Filter
o.Filter: h.WorkSpace
o.Filter: h.ListMacros
o.Filter: h.Constants
o.Filter: h.Memory
o.Filter: h.ModuleHead
o.Filter: h.Task
o.Filter: h.BMG
o.Filter: h.Menus
o.Filter: h.Memoriser
o.Icons: s.Icons
o.Icons: h.Constants
o.Icons: h.WorkSpace
o.Icons: h.ListMacros
o.Icons: h.Memory
o.Icons: h.Menus
o.Icons: h.ModuleHead
o.Icons: h.BMG
o.Icons: h.Task
o.Memoriser: s.Memoriser
o.Memoriser: h.WorkSpace
o.Memoriser: h.ListMacros
o.Memoriser: h.Constants
o.Memoriser: h.Memory
o.Memoriser: h.Task
o.Memoriser: h.Menus
o.Memoriser: h.BMG
o.Memoriser: h.ModuleHead
o.ModuleHead: s.ModuleHead
o.ModuleHead: h.WorkSpace
o.ModuleHead: h.Constants
o.ModuleHead: h.ListMacros
o.ModuleHead: h.Memory
o.ModuleHead: h.Task
o.ModuleHead: h.Messages
o.ModuleHead: h.ModuleTail
o.ModuleHead: h.Version
o.ModuleHead: h.Filter
o.ModuleHead: h.Sort
o.ModuleHead: h.URL
o.Sort: s.Sort
o.Sort: h.WorkSpace
o.Sort: h.ListMacros
o.Sort: h.Constants
o.Sort: h.ModuleHead
o.Sort: h.Memory
o.Sort: h.Menus
o.Sort: h.BMG
o.Task: s.Task
o.Task: h.Constants
o.Task: h.WorkSpace
o.Task: h.ListMacros
o.Task: h.ModuleHead
o.Task: h.Memory
o.Task: h.Menus
o.Task: h.Memoriser
o.Task: h.Messages
o.Task: h.Icons
o.Task: h.Windows
o.Task: h.Filter
o.Task: h.Edit
o.Task: h.URL
o.Task: h.BMG
o.Task: h.Version
o.URL: s.URL
o.URL: h.WorkSpace
o.URL: h.ListMacros
o.URL: h.Constants
o.URL: h.Memory
o.URL: h.Task
o.URL: h.Menus
o.URL: h.BMG
o.URL: h.ModuleHead
o.Windows: s.Windows
o.Windows: h.WorkSpace
o.Windows: h.ListMacros
o.Windows: h.Constants
o.Windows: h.Memory
o.Windows: h.ModuleHead
o.Windows: h.BMG
o.Windows: h.Task
o.Windows: h.Menus
o.Messages: s.Messages
o.Messages: h.WorkSpace
o.Messages: h.Constants
o.Messages: h.Memory
o.Messages: h.Task
o.Messages: h.Menus
o.Messages: h.BMG
o.Messages: h.ModuleHead
